#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;
void NhapMaTran(int a[][50], int &m, int &n);
void XuatMaTran(int a[][50], int m, int n);
void TongCacPhanTuTrongMaTran(int a[][50], int m, int n);
void TongCacPhanTu_TheoTungDong_TrongMaTran(int a[][50], int m, int n);
void TongCacPhanTu_TheoTungCot_TrongMaTran(int a[][50], int m, int n);
void Max_TheoTungCot_TrongMaTran(int a[][50], int m, int n);
void Tim_ThayThe(int a[][50], int m, int n, int &x, int &y);
void TimMax_TrenMaTran(int a[][50], int m, int n);
void TimMin_TrenMaTran(int a[][50], int m, int n);
void TongHaiMaTran(int a[][50], int b[][50], int m, int n, int c[][50]);
void HieuHaiMaTran(int a[][50], int b[][50], int m, int n, int c[][50]);
void main()
{
	int a[50][50], b[50][50], c[50][50], m, n, x, y;
	NhapMaTran(a,m,n);
	XuatMaTran(a,m,n);
	NhapMaTran(b,m,n);
	XuatMaTran(b,m,n);
	TongHaiMaTran(a,b,m,n,c);
	XuatMaTran(c,m,n);
	HieuHaiMaTran(a,b,m,n,c);
	XuatMaTran(c,m,n);
	getch();
}
void NhapMaTran(int a[][50], int &m, int &n)
{
	cout<<"\n Nhap vao so dong cua Ma Tran ";cin>>m;
	cout<<"\n Nhap vao so cot cua Ma Tran ";cin>>n;
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
		{
			cout<<"\n Nhap vao a["<<i<<"]["<<j<<"] = ";
			cin>>a[i][j];
		}
}
void XuatMaTran(int a[][50], int m, int n)
{
	cout<<"\n Xuat Ma Tran Vua Nhap ";
	for(int i=0;i<m;i++)
	{
		cout<<"\n";
		for(int j=0;j<n;j++)
			cout<<a[i][j]<<"\t";
	}
}
void TongCacPhanTuTrongMaTran(int a[][50], int m, int n)
{
	int tong=0;
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
			tong+=a[i][j];
	cout<<"\n Tong Cac Phan Tu Trong Ma Tran La "<<tong;
}
void TongCacPhanTu_TheoTungDong_TrongMaTran(int a[][50], int m, int n)
{
	for(int i=0;i<m;i++)
	{
		int tong=0;
		for(int j=0;j<n;j++)
			tong=tong+a[i][j];
		cout<<"\n Tong Cac Phan Tu Tai Dong "<<i<<" = "<<tong;
	}
}
void TongCacPhanTu_TheoTungCot_TrongMaTran(int a[][50], int m, int n)
{
	for(int j=0;j<n;j++)
	{
		int tong=0;
		for(int i=0;i<m;i++)
			tong=tong+a[i][j];
		cout<<"\n Tong Cac Phan Tu Tai Cot "<<j<<" = "<<tong;
	}
}
void Max_TheoTungCot_TrongMaTran(int a[][50], int m, int n)
{
	for(int j=0;j<n;j++)
	{
		int max=a[0][j];
		for(int i=0;i<m;i++)
			if(max<a[i][j])	max=a[i][j];
		cout<<"\n MAX Cac Phan Tu Tai Cot "<<j<<" = "<<max;
	}
}
// Tim Va Thay The Phan Tu Trong Ma Tran
void Tim_ThayThe(int a[][50], int m, int n, int &x, int &y)
{
	cout<<"\n Nhap vao gia tri x can tim ";cin>>x;
	cout<<"\n Nhap vao gia tri y can thay ";cin>>y;
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
			if(a[i][j]==x)
				a[i][j]=y;
}
void TimMax_TrenMaTran(int a[][50], int m, int n)
{
	int max=a[0][0];
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
			if(max<a[i][j])	max=a[i][j];
	cout<<"\n Gia tri lon nhat cua Ma tran vua nhap la "<<max;

}
void TimMin_TrenMaTran(int a[][50], int m, int n)
{
	int min=a[0][0];
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
			if(min>a[i][j])	min=a[i][j];
	cout<<"\n Gia tri lon nhat cua Ma tran vua nhap la "<<min;

}
void TongHaiMaTran(int a[][50], int b[][50], int m, int n, int c[][50])
{
	cout<<" \nTong Hai Ma Tran a va b la ";
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
			c[i][j]=a[i][j]+b[i][j];

}
void HieuHaiMaTran(int a[][50], int b[][50], int m, int n, int c[][50])
{
	cout<<" \nHieu Hai Ma Tran a va b la ";
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
			c[i][j]=a[i][j]-b[i][j];

}
